使用 LLM 改造本博客依赖 Markdown 库

使用各种 LLM 已经有需求了,现在已经深入我的编程了,我本是一个懒惰的人,这为我解决很多我技术能力不够和经验不足的问题。但是又带来了新的问题:代码掌控力度。

本博客使用的 Markdown 是为了解析 cmark + github flavored + obsidian flavored 而实现的,目前存在以下问题:

这一次改造我没有阅读全部的细节,全依靠 samply 和 benchmark 以及大量的测试来保证达到目标,从 samply 我看到了很多字符串内存和 vec 内存分配,移除 tokenizer 的目标就在于此,这大大减少了 vec 的使用。还降低了 String 的使用,将所有的 String 尽量推迟并只最一次分配。

本次改造直接基于 markdown-cjk-friendly中文文案排版指北 针对中文做了处理

引入了 obsidian 风格 markdown 测试,通过了 commonmark、gfm 等测试。

最终,性能虽然不及 pulldown-mark, 但是性能大抵是够了。

对于相同数据,pulldown-mark 的处理大概为(parse: ~0。56ms, html: ~0.83ms), 我的为(parse: ~2。02ms, html: ~2.57ms)

核心目标是完成了,并做了 github workflow(playground 没能完成自动部署)自动推送 wasm 的 browser 和 node 版本到 npm

416 Words